Typically, in a file-sharing system, files are downloaded from a single server to a client and the most effective way to accelerate downloading is to allow data to be transmitted at full rate which is restricted by the bandwidth between the server and the client. Peer-to-peer (P2P) distributed technologies, for example BitTorrent, eMule, and the like, have been developed to allow shared access to various sources. In other words, data are transmitted among different peers at the same time. The download speed is significantly affected by the popularity of the downloaded file. Popular files can be downloaded in an effective manner, but files with lower popularity are usually downloaded at a slower speed. Moreover, the number of peers available changes, which usually slows down the download and sometimes results in no progress for a long time due to lack of available peers.